home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga News 96
/
Amiga News 96.iso
/
amig_ad_os
/
amitex
/
arexx
/
conjugue.amitex
< prev
next >
Wrap
Text File
|
1997-02-06
|
3KB
|
112 lines
/* Conjugaison d'un verbe avec Amitex - Version 1.02 - © R.Florac */
/* Chez Corbin, 21 Juillet 1996, version 1.03 (waitforport, CM au lieu de SA) */
/* Chez Corbin, 28 juillet 1996, version 1.04 (choix verbe si inconnu) */
/* Chez Corbin, 18 Septembre 1996, version 1.05 (correction traitement result) */
port = ADDRESS()
cr = '0a'x
address command
if ~show(p, "CONJUGAREXX") then do
'run > nil:' "sys:c/conjuguer zip" /* chargement du programme */
waitforport "CONJUGAREXX"
end
address (port)
options results
'ASK("Infinitif du verbe"+CHR(10)+"à conjuguer")'
if result="" then exit
verbe=result
address CONJUGAREXX
CONJUGUE verbe 1 1
address (port)
if rc ~= 0 then do
titre = verbe ":" mise_forme(rc,result)
if rc=4 then do
address CONJUGAREXX
LISTE verbe
verbes=result
address (port)
'SELECT("'titre||cr||verbes'")' /* version 1.04 */
v = result
if v="RESULT" then exit /* version 1.05 */
verbes=translate(verbes,' ',cr)
verbe = word(verbes,v)
end
end
ttemps.1 = "Indicatif présent"
ttemps.2 = "Indicatif imparfait"
ttemps.3 = "Futur simple"
ttemps.4 = "Passé simple"
ttemps.5 = "Subjonctif présent"
ttemps.6 = "Subjonctif de l'imparfait"
ttemps.7 = "Conditionnel"
ttemps.8 = "Participes"
'SELECT("Temps à conjuguer'cr'1- 'ttemps.1 cr'2- 'ttemps.2 cr'3- 'ttemps.3 cr'4- 'ttemps.4 cr'5- 'ttemps.5 cr'6- 'ttemps.6 cr'7- 'ttemps.7 cr'8- 'ttemps.8'")'
temps = result
if temps<1 | temps>8 then exit
conjvalid=0
address CONJUGAREXX
do personne=1 to 6
CONJUGUE verbe temps personne
if rc ~= 3 then conjvalid=1
if personne = 1 then do
l1 = left(result,1) /* lecture première lettre */
if l1='h' then l1 = substr(result,2,1) /* lecture seconde lettre (traitement incomplet...) */
select
when (temps < 5 | temps = 7) then /* indicatif */
do
if l1="a" | l1="e" | l1="i" | l1 = "o" | l1='é' | l1="u" then
p.1 = "J'"
else
p.1 = "Je "
p.2 = "Tu "
p.3 = "Elle "
p.4 = "Nous "
p.5 = "Vous "
p.6 = "Ils "
end
when (temps > 4 & temps < 7) then /* subjonctif */
do
if l1="a" | l1="e" | l1="i" | l1 = "o" | l1='é' | l1="u" then
p.1 = "Que j'"
else
p.1 = "Que je "
p.2 = "Que tu "
p.3 = "Qu'il "
p.4 = "Que nous "
p.5 = "Que vous "
p.6 = "Qu'elles "
end
otherwise /* participes */
do
p.1 = ""; p.2 = ""; p.3 = ""
p.4 = ""; p.5 = ""; p.6 = ""
end
end
end
conjugaison.personne = mise_forme(rc,result)
end
address (port)
if conjvalid=1 then
'MESSAGE("Verbe 'verbe||cr||ttemps.temps||cr||conjugaison.1||cr||conjugaison.2||cr||conjugaison.3||cr||conjugaison.4||cr||conjugaison.5||cr||conjugaison.6'")'
else
'MESSAGE("Verbe 'verbe||cr||ttemps.temps||cr||conjugaison.1'")'
exit
procedure mise_forme:
parse arg rc,result
select
when rc=0 then return p.personne""result
when rc=1 then return 'Mauvais arguments'
when rc=2 then return 'Commande inconnue'
when rc=3 then return 'Conjugaison inusitée'
when rc=4 then return 'Verbe inconnu'
end
return ""